#include <iostream>
#include <vector>

using namespace std;

/*
    1.C语言存放大量类型相同的元素--》数组、指针中请堆空间
      数组，指针考虑容量，不要越界
      数组，指针c语言没有提供太多的函数直接操作，增删改查数据很多都需要程序员自己写算法
    2.C++标准模板库(STL库)容器都是模板类，提供了大量实用性很强的方法
    3.vector:所有的容器都是模板类(类型天下无敌) 矢量 向量容器
      特点:本质上是个动态数组，把c语言的数组封装成模板类
           vector使用的时候会自动调整内存分配大小
*/

int main()
{
    // 定义vector容器对象，存放整数
    vector<int> v1;
    vector<string> v2;

    // 尾插存放数据
    v1.push_back(10);
    v1.push_back(20);

    v2.push_back("hello");
    v2.push_back("world");

    // 遍历vector容器
    // 写法1 for循环
    for (int i = 0; i < v1.size(); i++)
    {
        cout << v1[i] << endl;
    }

    for (int i = 0; i < v2.size(); i++)
    {
        cout << v2[i] << endl;
    }

    //  写法2 C++11新增的基于范围的for循环
    for (int x : v1)
    {
        cout << x << endl;
    }
    for (string x : v2)
    {
        cout << x << endl;
    }

    // 写法3 迭代器
}